Anno accademico 2010/2011
Docente:
Camillo Fiorentini
Home page
Pagina
Turno A
Avvisi
-
Da gennaio 2012 la modalità d'esame diventerà per tutti quella
dell'edizione 2, perché il prossimo anno accademico (2011/12)
l'edizione 1 del corso di Programmazione confluirà nell'edizione 2.
-
Dal gennaio 2011 sono entrate in vigore le
propedeuticità fra esami.
Per poter sostenere alcuni esami del secondo e terzo anno
occorre aver superato l'esame di Programmazione.
Per ulteriori informazioni consultare la pagina ufficiale del
Corso di laurea triennale in INFORMATICA- Milano.
Modalità d'esame
-
L'esame consiste in una prova individuale pratica da svolgersi
nel laboratorio didattico SILab
di via Comelico 39 (in ambiente Linux con interfaccia a linea di comandi,
tempo massimo 4 ore) e una prova orale obbligatoria
(discussione degli esercizi svolti).
- Per sostenere la prova pratica
è necessario iscriversi
tramite
SIFA online
all'appello di Programmazione - Corso di Laboratorio Ed 1
Fiorentini / Morpurgo
(viene aperta un'unica lista di iscrizione valida per tutti gli studenti dell'Edizione 1).
-
Le iscrizioni si chiudono circa una settimana
prima della data dell'appello. Iscrivetevi per tempo e se riscontrate
problemi, segnalatelo subito alla segreteria didattica di via Comelico.
- La prova pratica si svolge in ambiente GNU/Linux, nel laboratorio
didattico SILab di via Comelico 39.
- Durante la prova è possibile utilizzare esclusivamente il libro di testo
e accedere al
materiale di supporto
appositamente predisposto.
-
Sebbene tale materiale sia disponibile durante lo svolgimento della prova, si
raccomanda agli studenti di prenderne visione per tempo e, in caso di dubbi,
contattare il docente per chiarimenti durante il ricevimento studenti.
- Le macchine saranno configurate in modo tale che siano utilizzabili solamente
gli strumenti necessari per la programmazione (editor, terminale,
compilatore java, browser per accedere alla documentazione delle API di Java).
La libreria prog del libro di testo non sarà disponibile.
- Regola del salto d'appello:
ci si può iscrivere al massimo a due dei tre appelli
fissati tra gennaio e febbraio e a uno dei due appelli fissati tra giugno
e luglio.
Preparazione alla prova pratica d'esame
L'esame consiste nella soluzione di 4 o 5 esercizi di programmazione
in Java. Il primo è un esercizio molto semplice con funzione di
filtro (cioè obbligatorio, se non viene fatto gli altri esercizi
non verranno valutati); gli altri esercizi richiedono la
progettazione e l'implementazione di semplici algoritmi, di classi o
gerarchie di classi ed eventualmente l'uso di una classe Java non vista a
lezione e quindi la consultazione della documentazione sulle API.
Qui trovate un esempio di
prova d'esame.
Date appelli per l'esame in laboratorio
3 febbraio, 17 febbraio, 3 marzo, 22 giugno, 15 luglio, 20 settembre.
Suddivisione in turni
Gli studenti dell'Edizione 1 sono suddivisi in
Turno A
e Turno B in base al cognome:
- gli studenti fino a Delù (incluso) sono nel Turno A
- tutti gli altri sono nel Turno B.
È possibile cambiare turno di laboratorio mediante scambio con uno studente
di turno diverso, da comunicare a uno dei docenti.
Ricevimento
Nel mio ufficio, via Comelico 39
(ufficio S.202 al secondo piano, corridoio sopra l'ingresso del Dipartimento)
su appuntamento
(fiorentini@dsi.unimi.it).
NOTA
Quando si scrive a un docente, usare preferibilemente l'indirizzo di posta di ateneo
(della forma nome.cognome@studenti.unimi.it).
Indicare sempre il proprio nome e cognome.
Account sulle macchine del laboratorio
Per poter utilizzare le macchine del laboratorio SILab
di via Comelico in cui si svolgono le lezioni di laboratorio
è necessario crearsi un account personale.
È stata predisposta nel SILab (davanti all'ufficio) una postazione self-service per la creazione degli account.
Occorre utilizzare la propria tessera universitaria magnetica
Guida
all'uso delle risorse di calcolo del SILab
(a cura del Prof. Santini).
Materiale relativo alle lezioni
-
19 ottobre - Laboratorio 1
Introduzione al corso. Introduzione all'uso di Linux:
file system, le nozioni di pathname assoluto e relativo, principali comandi.
Il materiale relativo alla crezione di ambiente Linux è disponibile
sulla pagina del Turno A.
Per un'introduzione a Linux, si può fare riferimento alle
sezioni uno e due
degli appunti "Introduzione a GNU/Linux" del Prof. Santini
Nota
Per poter svolgere la prova d'esame in laboratorio, è
necessario saper usare almeno i seguenti comandi:
pwd (print working directory),
ls (list directory contents),
cd (change directory),
cp (copy files),
mv (move/rename files),
rm (remove files).
-
26 ottobre - Laboratorio 2
Uso delle variabili di shell (in particolare, PATH e CLASSPATH). Il primo programma.
Esempio di script di shell: esempio.
Esempio di file di configurazione per bash: bashrc.
Esercizi da svolgere in laboratorio (e completare a casa):
Primo Programma.
-
2 novembre - Laboratorio 3
Strutture di controllo (selezione). Espressioni booleane.
Esercizi
da svolgere in laboratorio e completare a casa.
Esercizi da svolgere a casa: 2.7, 2.8 (libro di testo).
Alcune soluzioni:
Esercizio4.java,
Esercizio5.java,
Esercizio6.java.
-
9 novembre - Laboratorio 4
Strutture di controllo (cicli).
Esercizi
da svolgere in laboratorio (e completare a casa).
Esercizi da svolgere a casa:
Abbonamento,
2.9, 3.9, 3.14, 3.17.
Alcune soluzioni:
Esercizio 2.9 (con esempio di esecuzione),
Abbonamento.java,
Esercizio1.java,
Esercizio4.java,
Esercizio5.java.
-
16 novembre - Laboratorio 5
Strutture di controllo.
Nota
Prima di scrivere il codice Java, impostare su carta
uno schema di soluzione (con particolare attenzione ai cicli).
Esercizi:
Divisori,
Parola piegata,
Parola diagonale,
Tabella 1,
Tabella 2,
Tabella 3.
Esercizi da svolgere a casa:
esercizi semplici sui
cicli,
indovinaNumero;
esercizi del libro: 3.20, 3.23, 3.27, 3.28.
Alcune soluzioni:
ParolaPiegata.java,
Tabella3.java.
-
30 novembre - Laboratorio 6
Il tipo char
. La classe
StringTokenizer.
Esercizi da svolgere in laboratorio:
esercizi sull'uso di
caratteri.
Utilizzo della classe StringTokenizer
:
elenco di parole.
Esercizi da svolgere a casa:
cifrario di Cesare,
cifrario di Vigenere;
esercizi del libro: 4.14, 4.17, 4.24.
Alcune soluzioni:
Rotazione.java.
-
2 dicembre - Laboratorio 7
Array. Rappresentazione dei numeri naturali
(per un approfondimento,
dispense
del
Prof. Boldi).
Esercizi da svolgere in laboratorio:
calcolo della
media degli esami,
esercizi sulle
conversioni
di numeri naturali in diverse basi.
Esercizi da svolgere a casa: 4.28, 5.3.
Alcune soluzioni:
S3ToInt.java,
NumToInt.java.
-
14 dicembre - Laboratorio 8
Lettura da standard input usando la classe
Scanner.
Introduzione alla implementazione di classi.
Esercizio da svolgere in laboratorio:
piano di studi.
Esercizi da svolgere a casa:
somma di matrici,
5.18 (leggere la sequenza di numeri dalla linea di comando),
5.19 (vedi nota).
Alcune soluzioni:
Esame.java,
PianoDiStudi.java.
-
21 dicembre - Laboratorio 9
Implementazione e estensione di classi, overloading e overriding, il metodo equals.
Esercizio da svolgere in laboratorio e completare a casa:
rettangoli nel piano cartesiano.
File da utilizzare:
Punto.java,
Rettangolo.java,
Quadrato.java.
Esercizio da svolgere a casa:
campo minato.
Alcune soluzioni:
Punto.java,
Rettangolo.java,
Quadrato.java,
Esercizio1.java,
Esercizio3.java.
Esempi sulla gerarchia delle classi in Java (vengono utilizzate le classi Punto,Rettangolo e Quadrato):
Esempio1.java,
Esempio2.java,
Esempio3.java.
-
11 gennaio - Laboratorio 10
Introduzione all'uso di Collection.
Esercizio da svolgere in laboratorio e completare a casa:
cestino della spesa.
File da utilizzare:
Prezzo.java,
Prodotto.java,
Cestino.java,
ProdottoScontato.java.
Alcune soluzioni:
Prezzo.java,
Prodotto.java,
Cestino.java,
Esercizio2.java.
-
18 gennaio - Laboratorio 11
Collection.
Esercizio da svolgere in laboratorio e completare a casa:
Rubrica telefonica.
File da utilizzare:
Persona.java (classe completamente implementata),
Contatto.java,
ContattoAmico.java,
RubricaTelefonica.java.
Approfondimenti: sezione
Collections
di The Java Tutorials.
Alcune soluzioni:
Contatto.java,
RubricaTelefonica.java.
-
25 gennaio - Laboratorio 12
Esercizi riassuntivi.
-
Pagella
(Collection).
-
Crivello di
Eratostene
(Collection).
-
Sequenze di Kaprekar
(una sola classe con metodi statici).
-
Torneo
(gerarchia di classi con uso di Collection).
Nota
sull'esecuzione automatica di test per controllare la correttezza dell'output.
Libro di testo di riferimento
G. Pighizzini e M. Ferrari.
Dai fondamenti agli oggetti. Corso di programmazione Java (terza edizione).
Pearson Education, 2008.
Dalla home page del libro è possibile scaricare le
librerie
utilizzate nel corso.
Software
Viene utilizzato Java Developer Kit (compilatore e macchina virtuale per Java),
disponibile sul sito dedicato a Java della
Sun.
In particolare, occorre scaricare:
-
La versione 6 di JDK
- La libreria prog del libro di testo
Il materiale si trova anche nel CD allegato al libro.
Materiale di supporto
Nota
I file in formato PostScript possono
essere visualizzati utilizzando i programmi
Ghostscript, Ghostview e GSview,
i file in formato PDF possono essere visualizzati utilizzando
Acrobat Reader.
Camillo Fiorentini